package com.pingan.demospringevent.service;

import com.pingan.demospringevent.UserRegisterEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Service;

/**
 *事件订阅者的服务同样需要托管于 Spring 容器，
 * ApplicationListener<E extends ApplicationEvent> 接口是由 Spring 提供的事件订阅者必须实现的接口，
 * 我们一般把该 Service 关心的事件类型作为泛型传入。处理事件，通过 event.getSource() 即可拿到事件的具体内容，在本例中便是用户的姓名。
 *
 * 其他两个 Service（积分服务、优惠券服务），也同样编写，实际的业务操作仅仅是打印一句内容即可，篇幅限制，这里省略。
 *
 */
@Service
public class EmailService implements ApplicationListener<UserRegisterEvent> {

    @Override
    public void onApplicationEvent(UserRegisterEvent userRegisterEvent) {
        System.out.println("邮件服务接到通知，给 " + userRegisterEvent.getSource() + " 发送邮件...");
    }

}
